home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / moush101.zip / MOUSE.H < prev    next >
C/C++ Source or Header  |  1992-07-27  |  7KB  |  227 lines

  1. /*
  2.  
  3.  MOUSE.H
  4.  
  5.  Header file for Microsoft Mouse routines for Turbo C/C++
  6.  
  7.  Michael Chen    7/26/1992
  8.  
  9. */
  10.  
  11.  
  12. #ifndef __MOUSE_H
  13. #define __MOUSE_H
  14.  
  15.  
  16. /****************************************************************************
  17.  
  18.  Include files
  19.  
  20. ****************************************************************************/
  21.  
  22. #include <dos.h>
  23. #include <alloc.h>
  24.  
  25.  
  26. /****************************************************************************
  27.  
  28.  Defines, bit masks and flags
  29.  
  30. ****************************************************************************/
  31.  
  32. #define MOUSE_INTR    0x33    /* interrupt number for MS mouse driver    */
  33.  
  34. /* Bit masks for button state */
  35.  
  36. #define S_LEFT_BUTTON    1    /* bit 0 = left button status              */
  37. #define S_RIGHT_BUTTON    2    /* bit 1 = right button status             */
  38. #define S_MIDDLE_BUTTON    4    /* bit 2 = middle button status            */
  39. #define S_ALL_BUTTONS    7
  40.  
  41. /* Button IDs for check_down and check_up */
  42.  
  43. #define LEFT_BUTTON        0
  44. #define RIGHT_BUTTON        1
  45. #define MIDDLE_BUTTON        2
  46.  
  47. /* Bit masks for Get/SetMouseHandler */
  48.  
  49. #define H_MOVED        1
  50. #define H_LEFT_DOWN    2
  51. #define H_LEFT_UP    4
  52. #define H_RIGHT_DOWN    8
  53. #define H_RIGHT_UP    16
  54. #define H_MIDDLE_DOWN    32
  55. #define H_MIDDLE_UP    64
  56.  
  57. /* Bit masks for Get/SetAlternateMouseHandler */
  58.  
  59. #define A_MOVED        128
  60. #define A_LEFT_DOWN    64
  61. #define A_LEFT_UP    32
  62. #define A_RIGHT_DOWN    16
  63. #define A_RIGHT_UP    8
  64. #define A_SHIFT        4
  65. #define A_CTRL        2
  66. #define A_ALT        1
  67.  
  68.  
  69. /****************************************************************************
  70.  
  71.  Typedefs and related info
  72.  
  73. ****************************************************************************/
  74.  
  75. typedef struct
  76. {
  77.   char HotX;        /* X value of hotspot                    */
  78.   char HotY;        /* Y value of hotspot                    */
  79.   int ScreenMask[16];    /* screen mask (int per line, LSB right) */
  80.   int CursorMask[16];    /* cursor mask (same)                    */
  81. } MouseCursor;
  82.  
  83. typedef struct
  84. {
  85.   char Width;        /* width (in words) of the masks       */
  86.   char Height;        /* height of masks                     */
  87.   char HotX;        /* hotspot X value                     */
  88.   char HotY;        /* hotspot Y value                     */
  89.   void far* Data;    /* pointer to screen and cursor masks  */
  90. } LargeMouseCursor;
  91.  
  92. typedef void far (*MouseHandler)();
  93.  
  94. /*
  95.  
  96. Structure for large cursor data
  97.  
  98. 0    char Width;    width (in words) of the masks
  99. 1    char Height;    height of the masks
  100. 2    char HotX;    hotspot X value
  101. 3    char HotY;    hotspot Y value
  102. 4    void far* Data;    far pointer to data of the following form:
  103.  
  104. Data    int ScreenMask    screen mask (can this be in color?)
  105.      [Width*Height];
  106.  
  107.     int CursorMask    cursor mask (same) (masks must be contiguous)
  108.      [Width*Height];
  109. */
  110.  
  111.  
  112. /****************************************************************************
  113.  
  114.  External variables
  115.  
  116. ****************************************************************************/
  117.  
  118. extern int
  119.      DriverPresent;        /* not present until initialized           */
  120. extern int
  121.      NumberOfButtons;    /* number of buttons mouse has             */
  122. extern int
  123.      MouseX;        /* x position of mouse                     */
  124. extern int
  125.      MouseY;        /* y position of mouse                     */
  126. extern int
  127.      MouseButton;        /* button state of mouse                   */
  128. extern int
  129.      WhichButton;        /* which button the down/up info refers to */
  130. extern int
  131.      MousePressed;        /* number of presses since last call       */
  132. extern int
  133.      MouseWhereX;        /* x where pressed                         */
  134. extern int
  135.      MouseWhereY;        /* y where pressed                         */
  136. extern int
  137.      MouseMovedX;        /* x since last move                       */
  138. extern int
  139.      MouseMovedY;        /* y since last move                       */
  140. extern MouseHandler
  141.      LastMouseHandler;    /* result of GetMouseHandler           */
  142. extern int
  143.      MouseXSpeed;        /* horizontal mouse speed setting       */
  144. extern int
  145.      MouseYSpeed;        /* vertical mouse speed setting           */
  146. extern int
  147.      MouseDoubleThreshold;    /* double speed threshold setting       */
  148.  
  149.  
  150. /****************************************************************************
  151.  
  152.  Function prototypes
  153.  
  154. ****************************************************************************/
  155.  
  156. extern int
  157.      InitMouseDriver(void);            /* initialize mouse driver */
  158. extern void
  159.      ShowMouseCursor(void);                 /* show mouse cursor       */
  160. extern void                                     
  161.      HideMouseCursor(void);                 /* hide mouse cursor       */
  162. extern int
  163.      GetMouseStatus(void);                  /* get mouse status        */
  164. extern void
  165.      SetMousePosition(int x, int y);        /* set mouse position      */
  166. extern int
  167.      GetMouseDown(int b);                   /* check button press      */
  168. extern int
  169.      GetMouseUp(int b);                     /* check button release    */
  170. extern void
  171.      SetMouseXRange(int l, int h);          /* set horizontal range    */
  172. extern void
  173.      SetMouseYRange(int l, int h);          /* set vertical range      */
  174. extern void
  175.      SetMouseCursor(MouseCursor mc);        /* set mouse cursor        */
  176. extern int
  177.      GetMouseMove(void);                    /* check mouse movement    */
  178. extern void
  179.      SetMouseHandler
  180.        (MouseHandler mh, int mask);        /* set mouse handler       */
  181. extern void
  182.      SetLightPenEmulation(int flag);        /* set light pen emulation */
  183. extern void
  184.      SetMickeyRatio(int x,int y);           /* set "mickey" ratio      */
  185. extern void
  186.      SetUpdateRegion
  187.        (int x0, int y0, int x1, int y1);    /* set update region       */
  188. extern int
  189.      SetLargeMouseCursor
  190.        (LargeMouseCursor mc);               /* set large mouse cursor  */
  191. extern void
  192.      ExchangeMouseHandler
  193.        (MouseHandler mh, int mask);         /* exchange mouse handler  */
  194. extern int
  195.      GetDriverStateSize(void);              /* get driver state size   */
  196. extern void far*
  197.      GetDriverState(void);                  /* get driver state        */
  198. extern void
  199.      SetDriverState(void far* fp);        /* set driver state        */
  200. extern int
  201.      SetAltMouseHandler
  202.        (MouseHandler mh, int mask);         /* set handler, alternate  */
  203. extern MouseHandler
  204.      GetAltMouseHandler(int mask);          /* get handler, alternate  */
  205. extern void
  206.      SetMouseSensitivity
  207.        (int xs, int ys, int dt);            /* set mouse sensitivity   */
  208. extern void
  209.      GetMouseSensitivity(void);             /* get mouse sensitivity   */
  210. extern void
  211.      SetMouseDisplayPage(int page);         /* set display page        */
  212. extern int
  213.      GetMouseDisplayPage(void);             /* get display page        */
  214. extern int
  215.      DisableMouseDriver(void);              /* disable mouse driver    */
  216. extern int
  217.      EnableMouseDriver(void);               /* enable mouse driver     */
  218. extern int
  219.      ResetMouse(void);                      /* reset mouse             */
  220. extern int
  221.      StartMouse(void);            /* start using mouse       */
  222. extern void
  223.      EndMouse(void);            /* stop using mouse        */
  224.  
  225.  
  226. #endif
  227.